package interfaz;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.swing.*;

import entidades.Cliente;
import entidades.CuentaCorriente;

import vo.CCSolicitudCotizacionOperadorVO;
import vo.CCSolicitudCotizacionVO;
import vo.ClienteVO;

import beans.AdministradorClientes;
import beans.AdministradorCotizaciones;
import beans.AdministradorCotizacionesBean;

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;



public class InterfazGraficaODVSolicitarCotizacion {

	JButton btnEnviarSolicitud;
	JButton AgregarItem;
	JLabel lblBanner;
	JComboBox jcbItemsCotizados;
	JLabel lblIdCotizacion;
	
	public InterfazGraficaODVSolicitarCotizacion(){
		// Codigo del contructor
		inicializar();
		
	}
	
		
		public JList listaClientes;
		public DefaultListModel modelolista;
		public JButton btnAgregar;
		public JFrame jfFrame;
		public JPanel jpPanel;

		// Labels para el Formulario
		
		public JLabel jlIdCotizacion;
		public JLabel jlSKF;
		public JLabel jlMarca;
		public JLabel jlPais;
		public JLabel jlCantidad;
		
		// Area de Texto para ingresar los datos
		public JTextField jtIdCotizacion;
		public JTextField jtSKF;
		public JTextField jtMarca;
		public JTextField jtPais;
		public JTextField jtCantidad;
		public String [] etiquetas = 
		{"Id Cotizacion", "Codigo SKF", "Marca", "Pais", "Cantidad"};
		
		public JList listaItemsACotizar;
		
		public void inicializar(){
		
		jfFrame = new JFrame();
		jpPanel = new JPanel();
			
	
			// Caracteristicas del Frame
			jfFrame.setTitle("Interfaz OPERADOR ODV - COTIZAR RODAMIENTOS");
			jfFrame.setSize(640, 520);
			jfFrame.getContentPane().add(jpPanel);
			jpPanel.setLayout(null);
			jpPanel.setSize(640, 520);
			jfFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
			
			
			/*********************************************
			 * 
			 * Labels y Cajas de Texto
			 * 
			 *********************************************/
			jlIdCotizacion = new JLabel(etiquetas[0], JLabel.TRAILING);
			jlSKF = new JLabel(etiquetas[1], JLabel.TRAILING);
			jlMarca = new JLabel(etiquetas[2], JLabel.TRAILING);
			jlPais = new JLabel(etiquetas[3], JLabel.TRAILING);
			jlCantidad = new JLabel(etiquetas[4], JLabel.TRAILING);
			
			jtIdCotizacion = new JTextField();
			jtSKF = new JTextField();
			jtMarca = new JTextField();
			jtPais = new JTextField();
			jtCantidad = new JTextField();
			
			// Posicionamiento de los componentes
			jlIdCotizacion.setBounds(10, 30, 140, 30);
		    jtIdCotizacion.setBounds(160, 30, 140, 30);
		    jlSKF.setBounds(10, 70, 140, 30);
		    jtSKF.setBounds(160, 70, 140, 30);
		    jlMarca.setBounds(10, 110, 140, 30);
		    jtMarca.setBounds(160, 110, 140, 30);
		    jlPais.setBounds(10, 150, 140, 30);
		    jtPais.setBounds(160, 150, 140, 30);
		    jlCantidad.setBounds(10, 190, 140, 30);
		    jtCantidad.setBounds(160, 190, 140, 30);
		    
		    btnEnviarSolicitud = new JButton("Cotizar Rodamiento");
		    btnEnviarSolicitud.setBounds(40,350,200,40);
				
			
			
			// Agregar al Panel los labels
			jpPanel.add(jlIdCotizacion);
			jpPanel.add(jlSKF);
			jpPanel.add(jlMarca);
			jpPanel.add(jlPais);
			jpPanel.add(jlCantidad);
			
			// los TextField
			jpPanel.add(jtIdCotizacion);
			jpPanel.add(jtSKF);
			jpPanel.add(jtMarca);
			jpPanel.add(jtPais);
			jpPanel.add(jtCantidad);
			
			// El boton
			jpPanel.add(btnEnviarSolicitud);
			// La lista de clientes
			
			JLabel lblitemsACotizar = new JLabel("Items a Cotizar");
			lblitemsACotizar.setBounds(330, 10, 220, 30);
			
			
			
			
			
			
			
			
			
			
			
			
			DefaultListModel modeloLista = new DefaultListModel();
			listaItemsACotizar = new JList();
			listaItemsACotizar.setBounds(330, 50, 220, 400);
			// listaClientes.setModel(modeloLista);
			
			jpPanel.add(lblitemsACotizar);
			jpPanel.add(listaItemsACotizar);
			
			jfFrame.setVisible(true);
			
			//panel.add(lblBanner);
			//panel.add(lblIdCotizacion);
			jpPanel.add(btnEnviarSolicitud);
			
			
			
			btnEnviarSolicitud.addActionListener(new ActionListener() {
	    	 
            public void actionPerformed(ActionEvent e)
            {
            	
            	try{
            		
            		
            		CCSolicitudCotizacionOperadorVO sc = new CCSolicitudCotizacionOperadorVO();
            		ClienteVO c = new ClienteVO();
            		
            		c.setId(10);
            		c.setCuentaCorriente(1208);
            		c.setCondVenta("contadisimo");
            		
            		sc.setCliente(c);
            		
            		// Creamos una solic de cotiz
            		List<CCSolicitudCotizacionVO> cil = new ArrayList<CCSolicitudCotizacionVO>();
            		
            		CCSolicitudCotizacionVO ci1 = new CCSolicitudCotizacionVO();
            		ci1.setIdODV(1);
            		ci1.setSKF(jtSKF.getText());
            		ci1.setMarca(jtMarca.getText());
            		ci1.setPais(jtPais.getText());
            		ci1.setCantidad(Integer.valueOf(jtCantidad.getText()));
            		
           
            		cil.add(ci1);
            		
            		sc.setItems(cil);
            		

            	   Hashtable props = new Hashtable();
            	   props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
            	   props.put(InitialContext.PROVIDER_URL,"jnp://127.0.0.1:1099");
            	   InitialContext context = new InitialContext(props);
            	   AdministradorCotizaciones administradorCotizaciones = (AdministradorCotizaciones) context.lookup("EJBSistemaODVEAR/AdministradorCotizacionesBean/remote");
            	   
            	   
            	   administradorCotizaciones.cotizarRodamientos(sc);
            	   
            	   
            	  
            	
            	} catch (NamingException ne) {
            		System.out.println("No se encontro el nombre AdministradorCotizacionesBean. Excepcion."+ ne);
            		
            	}
            }
        });    
		

		
	}
	
	
}

